/* 
 * File:   chronologie.h
 * Author: landry
 *
 * Created on 10 octobre 2009, 16:49
 * La classe Chronologie est une classe singleton
 */

#ifndef _CHRONOLOGIE_H
#define	_CHRONOLOGIE_H


//#include "globalVariables.h"
#include "evenement.h"
#include "horloge.h"
#include <vector>
#include <list>

using namespace std;

extern "C++" list<Evenements> ListeEvenements;




class Chronologie {
public:

    //static vector<Evenement> eventList;
    Chronologie();
    Chronologie(const Chronologie& orig);
    //Chronologie()

     void addEvent(Evenements event);
     void removeEvent(); //On supprime toujour l'evenement en tete
     void sortListEvent();
     //void sortListEvent();

     void getEvent(Evenements *evt){
         //retourne l'evenement en tete de liste'
         if(evt->cType != 's'){
            Evenements ev = ListeEvenements.front();
            evt->cType = ev.cType;
            evt->instant = ev.instant;
            evt->num_client = ev.num_client;
            evt->num_event = ev.num_event;
            ListeEvenements.pop_front();
         }
         
         //return evt;
     }

     static Chronologie* getInstance(){

        if (NULL == _singleton)
        {
            //std::cout << "creating singleton." << std::endl;
            _singleton =  new Chronologie;
      }
    else
      {
        //std::cout << "singleton already created!" << std::endl;
      }

    return _singleton;
  }

     int compareEvent(Evenements e1,Evenements e2);

    virtual ~Chronologie();
private:
    
    static Chronologie *_singleton;


};

#endif	/* _CHRONOLOGIE_H */

